package com.luokangtao.zuul.exception;

import com.netflix.zuul.exception.ZuulException;
import lombok.extern.slf4j.Slf4j;

/**
 * 自定义异常处理器
 * 我们的思路是，当filter中设定的条件不满足的时候，抛出自定义的异常。
 * 根据前面的介绍，该异常会被zuul内置的处理异常的filter（SendErrorFilter）捕获，然后交给springboot处理。
 * 然而，springboot默认的返回结果并不是我们想要的，我们想要的是返回一个包含自定义错误码和错误消息的json。
 * 那么，我们怎么实现呢？本文的思路是覆盖springboot默认的处理异常的controller（BasicErrorController）。
 * 版权声明：本文为博主原创文章，转载请附上博文链接！
 * @author luokangtao
 * @create 2019-07-30 11:35
 */
@Slf4j
public class ErrorException extends ZuulException {

    public ErrorException(Throwable throwable, String sMessage, int nStatusCode, String errorCause) {
        super(throwable, sMessage, nStatusCode, errorCause);
    }

    public ErrorException(String sMessage, int nStatusCode, String errorCause) {
        super(sMessage, nStatusCode, errorCause);
    }

    public ErrorException(Throwable throwable, int nStatusCode, String errorCause) {
        super(throwable, nStatusCode, errorCause);
    }
}
